% \iffalse meta-comment
%
% Copyright (C) \the\year by Joseph Pan <cs.wzpan@gmail.com>
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.2 of this license or (at your option) any later
% version. The latest version of this license is in:
%
% http://www.latex-project.org/lppl.txt
%
% and version 1.2 or later is part of all distributions of
% LaTeX version 1999/12/01 or later.
%
% \fi
% 
% \iffalse
% <package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
% <package>\ProvidesPackage{scnuthesis}
% <package>		[2012/3/1 v0.5 By Joseph Pan <cs.wzpan@gmail.com>]
%
%<*driver>
\ProvidesFile{scnuthesis.dtx}[2015/1/22 v1.0 SCNUThesis]
\documentclass[11pt]{ltxdoc}
\usepackage{scnux}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\graphicspath{{figures/}}
\begin{document}
  \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% 
% \def\thuthesis{\textsc{Thu}\-\textsc{Thesis}}
% \def\nudtpaper{\textsc{Nudt}\textsc{Paper}}
% \def\scnuthesis{\textsc{SCNU}\-\textsc{Thesis}}
%
% \CheckSum{1617}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \changes{v0.5}{2012/02/20}{初始版本}
% \changes{v1.0}{2015/01/22}{发布正式版，项目转移到 scnu 组}
% \GetFileInfo{\jobname.dtx}
% 
% \DoNotIndex{\begin,\end,\begingroup,\endgroup}
% \DoNotIndex{\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi}
% \DoNotIndex{\let,\def,\xdef,\newcommand,\renewcommand}
% \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect}
% \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize}
% \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny}
% \DoNotIndex{\normalfont,\bfseries,\slshape,\interlinepenalty}
% \DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad}
% \DoNotIndex{\centering,\raggedright}
% \DoNotIndex{\c@secnumdepth,\@startsection}
% \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne}
% \DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass}
% \DoNotIndex{\AtBeginDocument,\AtEndDocument}
%
% \IndexPrologue{\section*{索引}%
%    \addcontentsline{toc}{section}{索~~~~引}}
% \GlossaryPrologue{\section*{修改记录}%
%    \addcontentsline{toc}{section}{修改记录}}
%
% \renewcommand{\abstractname}{摘~~要}
% \renewcommand{\contentsname}{目~~录}
%
% \title{\textsc{SCNUThesis:}\,\,华南师范大学学位论文\\\LaTeX{}模板使用手册}
% \author{潘伟洲 \\ \href{mailto:cs.wzpan@gmail.com}{\texttt{cs.wzpan@gmail.com}}} 
% \date{\fileversion\ (\filedate)}
%
% \thispagestyle{empty}
%
% \begin{abstract}
% 本模板旨在提供规范的华南师范大学计算机科学与软件工程的硕士与博士论文的\LaTeX{}写作模板环境，
% 现支持硕士/博士学位论文格式。
% \vspace{2em}
% \end{abstract}
%
%
% \clearpage
% \tableofcontents
%
% \clearpage
% \pagenumbering{arabic}
% \pagestyle{mainpage}
%
% \changes{v0.5.1}{2011/02/23}{修复了pro版makefile的bug}
% \section{快速上手}
% 这部分是专门为那些想快速开始写论文的人准备的。
% \begin{description}
% \item[~安装\TeX~] 下载最新的\TeX{}live或者C\TeX{}并安装
% \item[~字体~] 用户需要具备\verb|simsun.ttf|, \verb|simhei.ttf|, \verb|simkai.ttf|,
% 上述字体都是windows自带的; 除此之外，在网上下载(或者C\TeX{}
% 论坛) ``Adobe Opentype 中文字体''，确保下载下来Adobe的四款OTF字体:
% 宋，黑，仿宋，楷体。Linux用户可将上述字体复制到\verb|/usr/share/fonts/TTF|下。
% \item[~试一试~] 解压缩下载的模板，双击makepdf.bat(祈祷一下)
% \item[~一些配置选项~] 硕士论文请将\verb|thesis.tex|中第一行改为:\\
%\verb|\documentclass[master,twoside,vista,ttf]{scnuthesis}|；\\
% 博士论文则改为:\verb|\documentclass[doctor,twoside,vista,ttf]{scnuthesis}|。\\
% \verb|大陆、港澳台、留学生|请在\verb|data/info.tex|的\verb|\stutype{}|中填写。\\
% 答辩合格证明的委员会信息请在\verb|data/committee.tex|中填写。
% \item[~开始写了~] 所有文件均采用UTF8编码，因此要保证你的\TeX{}编辑器
% (winedt, texworks, texmaker, vim, 记事本($\cdots{}$)等)支持这种编码，
% (经过一番搜索设置后)打开\verb|thesis.tex|，如果看到的是中文$\rightarrow$
% \item[~漫长的写作~] 手边准备着\LaTeX{}的常用帮助文档(数学，图表，引用等),
% 结合你喜欢的文献管理软件(JabRef等), 漫长的\texttt{编辑，编译，修改，编辑，
% 编译$\cdots$}过程之后，你终于写完了$\rightarrow$
% \item[~校订~] 经过老师师兄师弟师妹齐心协力校正之后，你所做的只是:
% 装订，上交$\rightarrow$
% \end{description}
% {\color{magenta} Done!}
%
% \section{模板介绍}
%
% \textsc{scnu-cs-thesis} 是根据《华南师范大学学位论文撰写规范》2024年4月修订版本制作的\LaTeX{}模板。适用于计算机科学与软件工程专业的硕士和博士学位论文撰写。
%
% \section{安装}
% \label{sec:install}
%
% \subsection{下载}
% \textsc{scnu-cs-thesis} 主页：\url{https://gitee.com/gzchenyin/scnu-cs-thesis}
%
% 感谢 \textsc{SCNUThesis} 的作者，本模板是在其基础上根据最新撰写规范修改而来的。
%
% \subsection{模板的组成部分}
% 下表列出了 \textsc{scnu-cs-thesis} 的主要文件及其功能介绍：
%
% \begin{center}
%   \begin{longtable}{l|p{10cm}}
% \hline
% {\hei 文件（夹）} & {\hei 功能描述}\\\hline\hline
% \endfirsthead
% \hline
% {\hei 文件（夹）} & {\hei 功能描述}\\\hline\hline
% \endhead
% \endfoot
% \endlastfoot
% scnux.sty & 论文格式宏包\\
% scnuthesis.ins* & 模板驱动文件 \\
% scnuthesis.dtx* & 模板文档代码的混合文件\\
% scnuthesis.cls & 模板类文件\\
% scnuthesis.cfg & 模板配置文件\\
% thesis.bib & 参考文献样式文件\\
% \hline
% myscnu.sty & 在这里添加你自己的宏包 \\
% thesis.tex & 示例文档主文件\\
% ref/ & 示例文档参考文献目录\\
% data/ & 示例文档章节具体内容\\
% figures/ & 示例文档图片路径\\
% \textbf{scnuthesis.pdf} & 用户手册（本文档）\\
% \textbf{thesis.pdf} & 示例文档 \\
% \hline
%   \end{longtable}
% \end{center}
% 需要说明几点：1) scnuthesis.ins 和 scnuthesis.dtx 是模板的源代码文件，不是编译
% 论文必须的文件，因此只在pro版给出，给有需要定制这个模板的高级用户使用。2)
% scnuthesis.cls 和 scnuthesis.cfg 由 scnuthesis.ins 和 scnuthesis.dtx 生成，但为
% 了降低新手用户的使用难度，在basic版中已直接给出。3) 学习使用模板的最好的办法就
% 修改示例文件\emph{thesis.tex}.
%
% \subsection{准备工作}
% \label{sec:prepare}
% 本模板需要以下宏包，如果你使用的是\TeX{}live或C\TeX{}的最新版本，
% 这一步可以安全的忽略。
%
% \begin{center}
% \begin{minipage}{0.8\linewidth}\centering
% \begin{tabular}{*{6}{l}}\hline
%   xunicode & xltxtra &
%	xeCJK\footnote{\href{http://bbs.ctex.org/viewthread.php?tid=40232&extra=page%3D1}{xeCJK 下载页}} &
%	array & booktabs & longtable  \\
%   amsmath & amssymb & ntheorem &
%   indentfirst & paralist & txfonts \\
%	natbib & hyperref & 
%   graphicx & subfig\footnote{版本要求：$\geq$2005/06/28 ver: 1.3} &
%   caption\footnote{版本要求：$\geq$2006/03/21 v3.0j} & \\
% \hline
% \end{tabular}
% \end{minipage}
% \end{center}
%
% \subsection{\TeX{}系统的选择}
% 有网络环境的用户推荐安装\href{http://www.tug.org/texlive}{\TeX{}live}，
% \href{http://miktex.org}{MiKTeX}或者\href{http://www.ctex.org}{C\TeX}，
% 对于无网络环境的，推荐{\TeX{}live}或者C\TeX{}完整版，安装
% 过程很简单，一路下一步即可，但是需要\textbf{注意：}
%
% \begin{description}
% \item[~字体~] TTF选项默认调用Windows系统字体，其中楷体，仿宋需要安装Office; OTF选项需要
% Adobe的商业字体(可以使你的论文更加漂亮！)，中文字体（宋，黑，仿宋，楷体）可以从
% \href{http://ishare.iask.sina.com.cn/f/23186570.html}{这里下载}。
% 英文字体使用系统自带。
% \item[~xeCJK~] 无网络环境中，C\TeX{}完整版和\TeX{}live最新版都包括了需要的xeCJK版本。
% \end{description}
%
% \subsection{安装模板}
% \label{sec:install-cls}
% 不关心实现细节的用户可以跳过这一节。
%
% {\hei 注：默认的发行版本已经包含了可以使用的模板环境，
% 包括编译好的cls以及论文样例源文件，
% 想快速上手的话，可以直接参看\verb|thesis.tex|，进行修改。
% 写作的过程就是将你的论文的内容放到data文件夹中，
% 图片放到\verb|figures|文件夹中，用\textsc{jabref} 修改 \verb|thesis.bib|即可。}
%
% 当用户需要编译生成自己的PDF版论文时，需要依次输入：
% \begin{shell}
% $ xelatex thesis     
% $ bibtex thesis
% $ xelatex thesis
% $ xelatex thesis
% \end{shell}
%
% 而为了简化用户使用，模板中针对Windows和Linux分别提供了两个快捷脚本文件：
% \begin{enumerate}
% \item \textbf{Windows}：双击执行\verb|makepdf.bat|，或者使用下面的命令：
% \begin{shell}
% > makepdf.bat        
% \end{shell}
% \item \textbf{Linux}:使用下面的命令：
% \changes{v0.5.5}{2011/06/01}{使用shell脚本取代Makefile}
% \changes{v0.5.7}{2013/04/28}{重新改回Makefile编译}
% \begin{shell}
% $ make
% \end{shell}
% 编译完如果需要清除一下中间文件，可以使用下面的命令：
% \begin{shell}
% $ make clean
% \end{shell}
% \end{enumerate}
%
% \textbf{注意}：前面的``>''或者``\$''都只是cmd和shell下的提示符，不需要手动输入。
%
% 完成后就会在当前目录下生成\verb|thesis.pdf|文件，就是排好版的论文，不过这时的
% 内容还是空的。现在，就要进入激动人心的写作过程了。
%
% \section{使用说明}
% \label{sec:how-to-use}
%
% 在开始之前，先问自己几个问题：
% \begin{enumerate}\addtolength{\itemsep}{-5pt}
% \item 我是不是已经掌握了 \LaTeX{} 基础知识？
% \item 我是不是认真地阅读了模板文档？
% \item 周围有没有同学可以帮我？
% \end{enumerate}
%
% 更推荐用户去阅读示例文档的源代码，改写会给你一个快速的开始。
%
% \subsection{模板选项}
% 研究生、博士生的毕业论文的编排格式大体相同，主要在封面有所区别。为了让用户在编
% 写论文的时候灵活选择封面、单双面等排版方式，本模板特别提供了几个模板选
% 项，用户在使用的时候只需要先指定好着几个模板选项，就可以生成最匹配的模板。
%
% 论文的第一句话是调用模板：
%
% \changes{v0.5.4}{2011/05/11}{听取了Jiaxin Pan的建议，增加了chapterhead选项，可以将章节标题设为页眉}
%
%    \begin{macrocode}
%<thesis>%1. 如果是研究生论文，常用的选项是：
%<thesis>% \documentclass[master,twoside,vista,ttf]{scnuthesis}
%<thesis>%2. 如果是博士生论文，常用的选项是：
%<thesis>% \documentclass[doctor,twoside,vista,ttf]{scnuthesis}
%<thesis>%3. 如果使用是Windows XP之前的Windows系列，或者使用从这个系列拷贝过来的字体，则需要将Vista选项去掉，如：
%<thesis>% \documentclass[master,twoside,ttf]{scnuthesis}
%<thesis>%4. 建议使用OTF字体获得较好的页面显示效果
%<thesis>%   OTF字体从网上获得，各个系统名称统一，不用加vista选项
%<thesis>%   如果你下载的是最新的(1201)OTF英文字体，建议修改scnuthesis.cls，使用PS Std
%<thesis>%   \documentclass[doctor,twoside,otf]{scnuthesis}
%<thesis>%5. 如果想生成盲评，传递anon即可，仍需修改个人成果部分
%<thesis>% \documentclass[master,otf,anon]{scnuthesis}
%<thesis>%6. 让章节标题作为页眉，可以使用chapterhead选项。如果和twoside一起使用，则奇数页页眉为章节标题，偶数页为文章标题。
%<thesis>% \documentclass[master,otf,twoside,chapterhead]{scnuthesis}
%<thesis>%
%    \end{macrocode}
%    \begin{macrocode}
%<*thesis>
\documentclass[master,vista,ttf,twoside]{scnuthesis}
\usepackage{myscnu}
%</thesis>
%    \end{macrocode}
%
% 模板的参数设置(开关)描述：
%
%\begin{description}
%\item[~master,doctor~]
% 硕士论文使用master，博士论文使用doctor。
%\item[~twoside~]
% 指定论文为单面打印还是双面打印，当使用\verb|twoside|选项之后，
% 论文会将章节开在奇数页右手边，
% 默认为\verb|openany|单面打印。
%\item[~ttf,otf~]
% 决定使用何种字体，TTF默认使用Windows自带的字体，而OTF则使用Adobe的字体（需要下载），
% TTF字体的优势是满足学校论文对于字体的要求，缺点是制作出来的PDF文件在浏览时可能发虚，
% 而OTF字体屏幕显示饱满，而且字体有很多选项可以方便\XeTeX{}排版。推荐使用\textbf{otf}
% 选项。
% \item[~vista~]使用\textsc{vista}、\textsc{Win 7}的用户当启用TTF字体时，系统默认
%   的楷体、仿宋名称是 KaiTi 和 FangSong，而不
%   是 KaiTi\_GB2312 和 FangSong\_GB2312，这里加入开关进行切换。
% \item[~chapterhead~]让章节标题作为页眉，默认不打开这个选项。如果和twoside一起结
%   合使用，则奇数页的页眉将被设置为章节标题，而偶数页的页眉则依然为文章标题。
%\item[~anon~]
% 是否为盲评版本，如需盲评，请加上anon。
%\end{description}
%
% 如果需要使用自己定义的命令、宏包，请放于\verb|myscnu.sty|中。
% 事实上，该文件中已经添加了很多有用的宏包和命令，你可以参照修改。
% 这些之所以没有放到模板中，一则为了简洁，二则赋予用户在格式之外更多的自由。
% 里面的宏包有：代码高亮、算法环境、向量命令等，请仔细查看。
%
% 样例文件默认的是硕士论文(master)，双面打印(twoside)，TTF字体(ttf)。
%
% \subsection{论文结构}
%
% 硕士/博士生论文的形式结构如下：
%
% \begin{center}
%   \includegraphics[width=\textwidth]{struct.pdf}
% \end{center}
% 
% 为了便于插入图形，模板中将图形文件单独放到一个目录中\verb|figure|中，论文正文各个
% 章节置于\verb|data|中；当然也以以\verb|chapter|为目录。看使用者的倾向了。
%
%    \begin{macrocode}
%<*thesis>
\begin{document}
\graphicspath{{figures/}}
%</thesis>
%    \end{macrocode}
%
% \subsection{前置部分}
% \subsubsection{封面}
% 封面上包括11项内容，具体包括：
% \begin{itemize}
% \item 论文封头：论文分类号、学校代码、密级、学号；
% \item 论文题目；
% \item 作者信息：作者姓名、专业、研究领域、学院、指导老师；
% \item 论文提交日期。
% \end{itemize}
%
% \begin{description}
% \item[~论文封头~]
% 包括论文分类号、学校代码、密级和学号。
%
% 其中，“论文分类号”按《中国图书资料分类法》的分类号填写；“密级”请根据情况
% 在“\textbf{无}、\textbf{秘密}、\textbf{机密}、\textbf{绝密}”中选择其一填写。
%
% \item[~论文题目~]
%
% 论文题目应能概括整个论文最重要的内容，应简明、恰当，一般不超过25个字（外语专
% 业的学位论文须有中文题目）。由于论文题目可能超过1行， 我们提供额外的一个命
% 令\verb|\displaytitle|用来填入在页眉等地方出现的单行的题目。
% \changes{v0.6}{2013/05/19}{作者基本信息迁移到 info.tex，导师职称和名字
% 分离} 
% 
% \end{description}
%
%    \begin{macrocode}
%<*thesis>
\input{data/info} 
\input{data/committee}
%</thesis>
%    \end{macrocode}
%
% \subsubsection{中英文摘要}
%
% 摘要是学位论文内容概括性的简短陈述。它使读者可不阅读论文全文就能获得必要的信息。
% 摘要应具有独立性和自含性，即不阅读论文的全文，就能获得必要的信息。摘要中有数据、
% 有结论，是一篇完整的短文，可以独立使用，可以引用，可以用于工艺推广。摘要的内容
% 应包含与报告、论文同等量的主要信息，供读者确定有无必要阅读全文，也供文摘等二次
% 文献采用。摘要一般应说明研究工作目的、实验方法、结果和最终结论等，而重点是结果
% 和结论。要注意突出论文具有创新性的成果和新见解。硕士论文的中文摘要1000字左右。
% 博士论文的中文摘要1200字左右。外文摘要应是中文摘要的翻译，所表述的内容应与中文
% 摘要一致。
%
% 关键词：是为了文献标引工作从报告、论文中选取出来用以表示全文主题内容信息款目的
% 单词或术语。一般论文的关键词为3～8个。
%
% 模板中定义了相关环境\verb|\cabstract|以及\verb|\eabstract|来书写摘要，
% 以及\verb|\ckeywords|以及\verb|\ekeywords|来写关键字。
% 建议用户将摘要单独放在在\verb|abstract.tex|文件中，
% 在正文中\verb|\input{data/abstract}|即可。其格式为：
%
% \begin{example}
% \begin{cabstract}
% 中文摘要
% \end{cabstract}
% \ckeywords{关键字}
%
% \begin{eabstract}
% Abstract
% \end{eabstract}
% \ekeywords{Key}
% \end{example}
%
%<thesis>% 插入摘要，制作封面，制作答辩合格证明
%    \begin{macrocode}
%<*thesis>
\ifisanon{}\else{\makeCover\makeEnCover}\fi
\makecert
\frontmatter
\input{data/abstract}

%</thesis>
%    \end{macrocode}
%
% \subsubsection{目录（目次页）}
% 完成摘要页后就是目录页。应能清楚表明各章节的层次关系。
%
% \changes{v0.5.4}{2011/05/11}{增加了表目录、图目录和符号列表} 
%<thesis>% 生成目录
%    \begin{macrocode}
%<*thesis>
\tableofcontents
\listoftables           % 如果要生成表目录
\listoffigures          % 如果要生成图目录

\input{data/denotation} % 如果要生成符号列表

%</thesis>
%    \end{macrocode}
% \subsection{主体部分}
%
% 制作完前置部分后就是主体部分了，分别为：绪论、正文、结论和参考文献。
%
% \begin{description}
% \item[~绪论~] 
%   主要介绍本研究领域国内外研究现状，提出论文所要解决的问题以及该
%   研究工作在经济建设、科技进步和社会发展等方面的实用价值与理论意义。
% \item[~正文~] 
%   论文的核心部分，呈现研究工作的分析论证过程。正文的总体要求是：
%   实事求是、论据充分、逻辑清楚、层次分明、文字流畅、数据真实可靠。
% \item[~结论~] 
%   要求明确、精练、完整、准确，阐述论文创造性成果或新见解在本领域
%   的意义（应严格区分本人的研究成果与导师或其他人科研成果）。
% 由于绪论和结论在格式上和正文并没有不同，因此本模板并没有将这两个部分独立出来。
% 因此建议用户将绪论和结论作为正文的\emph{第一章}和\emph{最后一章}。
%
% 在写论文时可以在\verb|data/|文件夹中创建\verb|chap*.tex|文件，然后
% 在\verb|thesis.tex|中使用\verb|\input|语句引入进来。
%
% \item[~参考文献~] 
% 在\LaTeX{}下管理参考文献将极其方便，建议使用\verb|Jabref|生成条目，
% 用\verb|\cite|(其中\verb|upcite|是上标索引)索引即可。
% \verb|refs.bib|是你的参考文献名，可以根据需要换成你的。
%
% \end{description}
%
% \changes{v0.5.2}{2011/02/23}{修改了示例文档的一点细节}
% \changes{v0.5.3}{2011/02/23}{听取了Yin Chen的建议，添加了多行公式的示例}
% \changes{v0.5.3}{2011/02/23}{修改了示例文档中的少量错误标点}
% \changes{v0.5.5}{2011/06/01}{去掉了第一章中的表格和插图示例，统一在第二章中说
% 明}
% \changes{v0.5.7}{2013/04/28}{根据Jiawan Xu的反馈，解决了找不到参考文献样式的错
% 误}
% \changes{v0.6.1}{2013/05/20}{修正标点符号位于行首的问题，添加说明书相关教程}  
%<thesis>% 书写正文，可以根据需要增添章节。
%    \begin{macrocode}
%<*thesis>
\mainmatter
\input{data/chap01}
\input{data/chap02}
\input{data/chap03}

%</thesis>
%    \end{macrocode}
%<thesis>% 参考文献
%    \begin{macrocode}
%<*thesis>
\cleardoublepage
\renewcommand{\chapterlabel}{\bibname} % 设置参考文献的页眉
\bibliographystyle{bstutf8}
\bibliography{ref/refs}

%</thesis>
%    \end{macrocode}
% \subsection{后置部分}
%
% 后置部分包括附录、致谢、作者攻读学位期间发表的学术论文目录、学位论
% 文原创性声明、学位论文使用授权声明。
% 
% \changes{v0.5.7}{2013/04/28}{将多个附录分离成多个文件}
%<thesis>% 附录
%    \begin{macrocode}
%<*thesis>
\appendix
\backmatter
\input{data/appendix01}
\input{data/appendix02}

%</thesis>
%    \end{macrocode}
%<thesis>% 致谢
%    \begin{macrocode}
%<*thesis>
\cleardoublepage
\renewcommand{\chapterlabel}{\ackname} % 设置参考文献的页眉
\input{data/ack}

%</thesis>
%    \end{macrocode}
%<thesis>% 作者攻读学位期间发表的学术论文目录
%    \begin{macrocode}
%<*thesis>
\cleardoublepage
\renewcommand{\chapterlabel}{\resumename} % 设置作者个人成果的页眉
\input{data/resume}

\end{document}
%</thesis>
%    \end{macrocode}
%
% \textcolor{blue}{Happy \TeX{}ing! 欢迎提各式各样的意见！}
%
% \newpage\relax%
% \StopEventually{\PrintChanges}
% \clearpage
%
% \section{实现细节}
% 我们首先介绍文档模板的基本信息以及宏包和配置，
% 然后依照华南师范大学论文模板的书写规范一节一节的介绍实现步骤。
%
%
% \subsection{基本信息}
%    \begin{macrocode}
%<cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<cls>\ProvidesClass{scnuthesis}
%<cfg>\ProvidesFile{scnuthesis.cfg}
%<cls|cfg>
%    \end{macrocode}
%
% \subsection{宏包配置}
%
% 当前的宏包选项在之前已经介绍了，下面是实现步骤，就是几个\verb|if|。
%    \begin{macrocode}
%<*cls>
\newif\ifismaster\ismastertrue
\newif\ifisttf\isttftrue
\DeclareOption{master}{\ismastertrue}
\DeclareOption{doctor}{\ismasterfalse}
\newif\ifisanon\isanonfalse
\DeclareOption{anon}{\isanontrue}
\newif\ifistwoside\istwosidefalse
\DeclareOption{twoside}{\istwosidetrue}
\DeclareOption{ttf}{\isttftrue}
\DeclareOption{otf}{\isttffalse}
\newif\ifisvista\isvistafalse
\DeclareOption{vista}{\isvistatrue}
\newif\ifischapter\ischapterfalse
\DeclareOption{chapterhead}{\ischaptertrue}
\DeclareOption*{\PackageWarning{scnuthesis}{Unknown Option '\CurrentOption'}}
\ProcessOptions\relax
%</cls>
% 
%  封面的中文数字使用的是简体数字，而非大写数字，因此自定义 \zhnumber 命令
%<*cls>
% The argument is not expanded
\def\zhdigits#1{%
  \@tfor\next:=#1\do{%
    \ifcase\next
      〇\or 一\or 二\or 三\or 四\or 五\or 六\or 七\or 八\or 九%
    \fi}}
% The argument is expanded first
\def\zhdigitx#1{%
  \edef\next{#1}%
  \expandafter\zhdigits\expandafter{\next}}
%</cls>
%    \end{macrocode}
%
% 首先调用在文档类书写中需要的过程控制语句，在计算一些\verb|length|时要用到
%    \begin{macrocode}
%<*cls>
\RequirePackage{ifthen,calc}
\RequirePackage{tikz}
\RequirePackage[normalem]{ulem}
%</cls>
%    \end{macrocode}
%
% 接着我们导入文本类，该模板基于标准的书籍模板book，其默认格式为单面打印。
% 博士论文如需双面打印，必须指定\verb|twoside|选项。双开的含义是章节总是
% 起在右手边，左手空白页为完全的空白页，不包含页眉页脚。
%
%    \begin{macrocode}
%<*cls>
\ifistwoside
  \LoadClass[a4paper,12pt,openright,twoside]{book}
\else
  \LoadClass[a4paper,12pt,openany]{book}
  \fi
%</cls>  
%    \end{macrocode}
%
% 我们直接用\textsf{geometry}宏包进行页面边距的设定，调用titlesec设定标题以及页眉页脚，
% 用\textsf{titletoc}设定目录格式。需要改动的可以参考这三个宏包的说明文档。
%
%    \begin{macrocode}
%<*cls>
\RequirePackage[includeheadfoot]{geometry}
\RequirePackage[center,pagestyles]{titlesec}
\RequirePackage{titletoc}
%</cls>
%    \end{macrocode}
%
% 文档中另外重要的两个部分是表格和图片。
% 首先来看图片：\textsf{graphicx}宏包是必不可少的，
% 并排图形。\textsf{subfigure} 已经不再推荐，用新的 \textsf{subfig}。
% 加入 \verb|config| 选项
% 以便兼容 \textsf{subfigure} 的命令。浮动图形和表格标题样式。\textsf{caption2} 已经不
% 推荐使用，采用新的 \textsf{caption}。它会自动被 \textsf{subfig} 装载进来。所以可以在
% 后面使用 \textbf{captionsetup} 命令，宏包\textsf{float}的作用是可以用H命令，
% 将浮动对象强制放在这里(副作用是版面可能不好):
%
%    \begin{macrocode}
%<*cls>
\RequirePackage{graphicx}
\RequirePackage[config]{subfig}
\RequirePackage{float}
%</cls>
%    \end{macrocode}
%
% 再来看表格：我们采用\textsf{longtable}来处理长的表格，还需要\textsf{array}包;
% 标准的论文需要表格为三线表，这里引用\textsf{booktabs}宏包来处理，
% 这样，我们就可以简单的使用\verb|\toprule|，\verb|\midrule|，\verb|bottomrulle|
% 这样的命令;
% 为了在表格中支持跨行，需要引入\textsf{multirow}包，\textsf{tabularx}的作用是为了使用
% 固定宽度的表格，\textsf{diagbox}可以让我们在表格中使用反斜线:
% \changes{v0.6.7}{2014/05/17}{听取了zcchen的建议，替换过时的slashbox宏包为diagbox}
%    \begin{macrocode}
%<*cls>
\RequirePackage{array}
\RequirePackage{longtable}
\RequirePackage{booktabs}
\RequirePackage{multirow}
\RequirePackage{tabularx}
\RequirePackage{diagbox}
%</cls>
%    \end{macrocode}
% 表格和图片的例子可以搜索C\TeX{}论坛或者看示例文件。
%
% 引入\textsf{paralist}来达到比较好看的列表环境
%    \begin{macrocode}
%<cls>\RequirePackage[neverdecrease]{paralist}
%    \end{macrocode}
%
% 文档中还需要一定的色彩控制和字体控制
%    \begin{macrocode}
%<cls>\RequirePackage{xcolor}
%    \end{macrocode}
%
% 为了排出漂亮的数学公式，\textsf{amsmath}包是必不可少的，\textsf{txfonts}的作用是用
% 自己的typewriter字体替换系统Courier字体，它必须在\AmSTeX{}之后，这个包还可以
% 让用户方便的使用正体希腊字幕。数学应用中还需要定理环境，我们一并包括进来：
%    \begin{macrocode}
%<*cls>
\RequirePackage{amsmath,amssymb,bm}
\RequirePackage[varg]{txfonts}
\RequirePackage[amsmath,thmmarks,hyperref]{ntheorem}
%</cls>
%    \end{macrocode}
%
% 本文档类直接采用\XeTeX{}引擎，方便了字体配置以及编译，
% 这里需要调用\textsf{XeCJK}宏包，no--math的作用是不改变先前数学宏包设定的数学字体。
% 同时采用\textsf{indentfirst}宏包管理文字的缩进，使用\textsf{setspace}宏包管理
% 段落内的行距:
% \changes{v0.5.7}{2013/04/28}{使用ulem宏包替代kulem宏包，以解决MikTeX编译出错的
%问题}
% \changes{v0.6}{2013/05/19}{使用半角格式处理标点}
% \changes{v0.6.2}{2013/05/22}{取消使用CheckSingle和xeCJKsetup}
% \changes{v0.6.3}{2013/11/24}{修复半角标点出现在首行的问题，谢谢Yuheng。}
% \changes{v0.6.6}{2014/04/19}{添加 setspace 宏包处理段落内的行距}
%    \begin{macrocode}
%<*cls>
\RequirePackage[CJKnumber,no-math,BoldFont,SlantFont]{xeCJK}
\punctstyle{hangmobanjiao}
\RequirePackage{ulem}
\RequirePackage{indentfirst}
\RequirePackage{setspace}
%</cls>
%    \end{macrocode}
%
% 另外一个关键部分是文献索引，包括书签以及参考文献的索引，记得\textsf{hyperref}配合
% \XeTeX{}使用时暂不能开启Unicode选项，新的发行版已经移除\textsf{hypernat}包:
%    \begin{macrocode}
%<*cls>
\RequirePackage[numbers,sort&compress,square]{natbib}
\RequirePackage[CJKbookmarks=true,pdfborder=0 0 1]{hyperref}
%</cls>
%    \end{macrocode}
%
%\subsection{基础配置}
% 本章主要介绍模板中用到的基本的元素和定义，现在包括两部分: 字体，字号和字体命令
%
%\subsubsection{字体定义}
% 我们首先来处理\TeX{}中最令人棘手的字体问题，
% 在使用\textsf{XeCJK}包之后，配置和选择很容易，
% 预先设定好一些字体命令是为了后面方便的更改文本字体的需要。
% 首先我们开启tex连字符:
%    \begin{macrocode}
%<*cls>
\defaultfontfeatures{Mapping=tex-text}
%</cls>
%    \end{macrocode}
%
% 之后用\textsc{XeCJK}包提供的命令设定字体，用户可以选择使用TTF还是OTF字体，
% Adobe的OpenType字体在排版上更具备优势，文档显示锐利，推荐使用。
% \verb|setcharclass|的作用是纠正xunicode、xeCJK的一些设定:
%
%    \begin{macrocode}
%<*cls>
\xeCJKsetcharclass{"0}{"2E7F}{0}
\xeCJKsetcharclass{"2E80}{"FFFF}{1}
\newcommand\installTTF{%
  \setmainfont{Times New Roman}
  \setsansfont{Arial}
  \setmonofont{Courier New}
  \ifisvista
    \setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun}
    \setCJKmonofont{KaiTi} % Pluto use LiSu Thu use Kaiti, orig is SimSun
    \setCJKfamilyfont{fs}{FangSong}
    \setCJKfamilyfont{kai}{KaiTi}
  \else
    \setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi_GB2312}]{SimSun}
    \setCJKmonofont{KaiTi_GB2312} % Pluto use LiSu Thu use Kaiti, orig is SimSun
    \setCJKfamilyfont{fs}{FangSong_GB2312}
    \setCJKfamilyfont{kai}{KaiTi_GB2312}
  \fi
  \setCJKsansfont{SimHei}
  \setCJKfamilyfont{song}{SimSun}
  \setCJKfamilyfont{hei}{SimHei}
  \setCJKfamilyfont{li}{LiSu}
  \setCJKfamilyfont{you}{YouYuan}
}
\newcommand\installOTF{%
  \setmainfont{Times New Roman} % could be changed to "Times New Roman PS Std"
  \setsansfont{Arial}
  \setmonofont{Courier New}
  \setCJKmainfont[BoldFont={Adobe Heiti Std},ItalicFont={Adobe Kaiti Std}]{Adobe Song Std}
  \setCJKsansfont{Adobe Heiti Std}
  \setCJKmonofont{Adobe Kaiti Std}
  \setCJKfamilyfont{song}{Adobe Song Std}
  \setCJKfamilyfont{hei}{Adobe Heiti Std}
  \setCJKfamilyfont{fs}{Adobe Fangsong Std}
  \setCJKfamilyfont{kai}{Adobe Kaiti Std}
  \setCJKfamilyfont{li}{Adobe Kaiti Std}
  \setCJKfamilyfont{you}{Adobe Kaiti Std}
}

%</cls>
%    \end{macrocode}
%
% 在使用过程中要\textbf{注意}：OTF字体并没有隶书字体，因此使用楷体代替。
%
% 之后我们根据你的设定决定安装什么字体：
%
%    \begin{macrocode}
%<*cls>
\ifisttf
  \installTTF
\else
  \installOTF
\fi
%</cls>
%    \end{macrocode}
%
% 选定好字体之后，就是设定字体别名，这样我们就可以在文档的其他部分直接使用较短的命令来
% 指定特定的字体了:
%
%    \begin{macrocode}
%<*cls>
\newcommand{\song}{\CJKfamily{song}}    % 宋体
\newcommand{\fs}{\CJKfamily{fs}}        % 仿宋体
\newcommand{\kai}{\CJKfamily{kai}}      % 楷体
\newcommand{\hei}{\CJKfamily{hei}}      % 黑体
\newcommand{\li}{\CJKfamily{li}}        % 隶书
\newcommand{\you}{\CJKfamily{you}}      % 幼圆
\def\songti{\song}
\def\fangsong{\fs}
\def\kaishu{\kai}
\def\heiti{\hei}
\def\lishu{\li}
\def\youyuan{\you}
%</cls>
%    \end{macrocode}
%
% \subsubsection{字号定义}
%下面就是定义字号大小，这一部分我们有两个参考，其一是：
%
% \begin{verbatim}
% 参考科学出版社编写的《著译编辑手册》(1994年)
% 七号      5.25pt       1.845mm
% 六号      7.875pt      2.768mm
% 小五      9pt          3.163mm
% 五号      10.5pt       3.69mm
% 小四      12pt         4.2175mm
% 四号      13.75pt      4.83mm
% 三号      15.75pt      5.53mm
% 二号      21pt         7.38mm
% 一号      27.5pt       9.48mm
% 小初      36pt         12.65mm
% 初号      42pt         14.76mm
%
% 这里的 pt 对应的是 1/72.27 inch，也就是 TeX 中的标准 pt
% \end{verbatim}
%
% 另外一个来自WORD中的设定：
% \begin{verbatim}
% 初号 = 42bp = 14.82mm = 42.1575pt
% 小初 = 36bp = 12.70mm = 36.135 pt
% 一号 = 26bp = 9.17mm = 26.0975pt
% 小一 = 24bp = 8.47mm = 24.09pt
% 二号 = 22bp = 7.76mm = 22.0825pt
% 小二 = 18bp = 6.35mm = 18.0675pt
% 三号 = 16bp = 5.64mm = 16.06pt
% 小三 = 15bp = 5.29mm = 15.05625pt
% 四号 = 14bp = 4.94mm = 14.0525pt
% 小四 = 12bp = 4.23mm = 12.045pt
% 五号 = 10.5bp = 3.70mm = 10.59375pt
% 小五 = 9bp = 3.18mm = 9.03375pt
% 六号 = 7.5bp = 2.56mm
% 小六 = 6.5bp = 2.29mm
% 七号 = 5.5bp = 1.94mm
% 八号 = 5bp = 1.76mm
%
% 1bp = 72.27/72 pt
% \end{verbatim}
%
% 我们采用习惯的字号设定方法(也就是WORD中的设定)，首先编写字体设置命令：
%
%\begin{macro}{\choosefont}
% 我们可以使用 |\choosefont| 来选择字体, 字体设定这些大多是从清华的模板拷过来的。
%
%    \begin{macrocode}
%<*cls>
\newlength\thu@linespace
\newcommand{\thu@choosefont}[2]{%
    \setlength{\thu@linespace}{#2*\real{#1}}%
    \fontsize{#2}{\thu@linespace}\selectfont}
\def\thu@define@fontsize#1#2{%
    \expandafter\newcommand\csname #1\endcsname[1][\baselinestretch]{%
    \thu@choosefont{##1}{#2}}}
%</cls>
%    \end{macrocode}
%\end{macro}
%
%设定具体的字体大小:
%
%    \begin{macrocode}
%<*cls>
\thu@define@fontsize{chuhao}{42bp}
\thu@define@fontsize{xiaochu}{36bp}
\thu@define@fontsize{yihao}{26bp}
\thu@define@fontsize{xiaoyi}{24bp}
\thu@define@fontsize{erhao}{22bp}
\thu@define@fontsize{xiaoer}{18bp}
\thu@define@fontsize{sanhao}{16bp}
\thu@define@fontsize{xiaosan}{15bp}
\thu@define@fontsize{sihao}{14bp}
\thu@define@fontsize{banxiaosi}{13bp}
\thu@define@fontsize{xiaosi}{12bp}
\thu@define@fontsize{dawu}{11bp}
\thu@define@fontsize{wuhao}{10.5bp}
\thu@define@fontsize{xiaowu}{9bp}
\thu@define@fontsize{liuhao}{7.5bp}
\thu@define@fontsize{xiaoliu}{6.5bp}
\thu@define@fontsize{qihao}{5.5bp}
\thu@define@fontsize{bahao}{5bp}
%</cls>
%    \end{macrocode}
%
%\subsubsection{自定命令}
% 有一些常量，测试，自定义的命令等都放在这里，待到论文逐渐完善之后再做定夺，
% 当然用户自己的命令也可以在此添加，事实上如果natbib传递的是superscript，
% \verb|cite|命令默认就成了上标了。这里不加入这个选项，而是单独编写一个命令:
%
%    \begin{macrocode}
%<*cls>
\newcommand{\upcite}[1]{\textsuperscript{\cite{#1}}} % 上标形式引用
\newcommand{\china}{中华人民共和国}
\def\thuthesis{\textsc{Thu}-\textsc{Thesis}}
\def\nudtpaper{\textsc{Nudt}\textsc{Paper}}
\def\scnuthesis{\textsc{SCNU}\textsc{Thesis}}  
\newcommand{\pozhehao}{\kern0.3ex\rule[0.8ex]{2em}{0.1ex}\kern0.3ex}
\newcommand{\chapterlabel}{}
%</cls>
%    \end{macrocode}
%
%\subsubsection{中文元素}
%
% 默认的页面元素的英文名，诸如Contents为目录，Abstract为摘要等，
% 我们首先将他们一一中文化：
% \changes{v0.6}{2013/05/19}{目录字体更改为黑体} 
%
%    \begin{macrocode}
%<*cls>
\renewcommand\contentsname{\hei 目\hspace{1em}录}
\renewcommand\listfigurename{\hei 图\hspace{1em}目\hspace{1em}录}
\renewcommand\listtablename{\hei 表\hspace{1em}目\hspace{1em}录}
\newcommand\denotationname{\hei 符号列表}
\newcommand\ackname{致\hspace{1em}谢}
\newcommand\resumename{作者攻读学位期间发表的学术论文目录}
\newcommand\listequationname{公式索引}
\newcommand\equationname{公式}
\renewcommand\bibname{参考文献}
\renewcommand\indexname{索引}
\renewcommand\figurename{图}
\renewcommand\tablename{表}
\renewcommand\appendixname{附录}
\def\CJK@today{\the\year 年 \the\month 月 \the\day 日}
\newcommand{\setzhdate}[3]{
  #1 年 #2 月 #3 日}
}
\newcommand\entoday{\today{}}
\newcommand{\setZHCoverdate}[2]{
  \zhdigits{#1} 年 \zhdigits{#2} 月
}
\newcommand{\monthnameenglish}[1]{\MakeUppercase{\ifcase#1\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi}}
\newcommand{\setENCoverdate}[2]{
  \monthnameenglish{#2} #1
}
%</cls>
%    \end{macrocode}
%
% 好，下面就开始按照论文模板要求进行排版！
%
%\subsection{编写要求}
% 学校规定，学位论文文稿用A4纸（210mm×297mm）标准大小的白纸双面打印，论文装订后
% 尺寸为标准A4纸的尺寸，一律在左侧装订，要求装订、剪切整齐，便于使用和保存。
%
% 本模板设置（天头）和下方（地角）分别留边25mm，左侧（订口）和右侧（切口）分别留
% 边30mm，页眉与页脚分别为23mm。
%
% 实现起来很简单，只要调用\textsf{geometry}的版面控制命令即可，
% 方法为先把word模板转化为PDF，
% 用Adobe的裁剪功能查看页边距，进行微调，直到比对正确为止，设定如下：
%
%    \begin{macrocode}
%<*cls>
\geometry{top=21mm,bottom=25.5mm,left=30mm,right=30mm}
\geometry{headheight=9mm,headsep=1mm,footskip=10mm}
%</cls>
%    \end{macrocode}
%
%\subsection{页眉页脚}
%
% 我们采用titlesec进行页面配置。
% 页面中的主要元素有Chapter，Section，Subsection等元素的外观，
% 位置，颜色字体等，页面元素还包括页眉页脚。这种方法配置简便，易管理。
%
%\begin{macro}{\setheadrule}
% 这个命令属于更改\textsf{titlesec}中的一个画页眉的命令,稍加调整:
%
%    \begin{macrocode}
%<*cls>
 \renewcommand\setheadrule[1]{%
    \ifdim#1=\z@
       \let\makeheadrule\@empty
    \else
       \def\makeheadrule{%
       \makebox[0pt][l]{\rule[.2\baselineskip]{\linewidth}{1.5pt}}%
       }%
    \fi
  }

\renewcommand{\chaptermark}[1]{\markboth{\chaptertitlename~\ #1}{}}
  
%</cls>
%    \end{macrocode}
%\end{macro}
%
% 下面将分别针对文中的几个部分设计相应的页眉、页脚格式。
% \changes{v0.5.4}{2011/05/11}{针对文中的几个部分设计页眉和页脚，以便于实现章节
% 标题}
% \changes{v0.5.5}{2011/06/01}{偶数页面改为华南师范大学硕士/博士学位论文}
% \changes{v0.5.8}{2013/05/03}{根据You Gao的建议，双数页眉由学校论文信息改为论文标题}
%    \begin{macrocode}
%<*cls>
% 设置前置部分的页眉、页脚
\renewpagestyle{plain}{
\sethead{}{}{} % 2024 规范中摘要去不显示页眉
\setfoot{}{{\songti \wuhao 第~\thepage~页}}{}%
}


% 设置正文部分的页眉、页脚
\newpagestyle{mpage}{
  \sethead{}{\raisebox{.65\baselineskip}
    {
      \songti \wuhao
      \ifischapter % 标题作为页眉
        \ifistwoside
        {
          \ifodd \value{page} % 奇数页
          {第\thechapter 章\hspace{1em}\chaptertitle}
          \else % 偶数页
          {\@displaytitle}\fi
        }
        \else
        {第\thechapter 章\hspace{1em}\chaptertitle}\fi
        \else %标题不作为页眉
        {
          \ifodd \value{page} % 奇数页         
          {\@title} % 奇数页论文题目作为页眉
          \else % 偶数页
          {\@displaytitle}\fi % 偶数页displaytitle作为页眉
        }\fi
    }
  }{}
  \headrule%
  \setfoot{}{{\songti \wuhao 第~\thepage~页}}{}%
  \footrule%
  \setfootrule{1bp}
}

% 设置附录页面的页眉、页脚
\newpagestyle{appendixpage}{
\sethead{}{}{} % 2024 规范中附录页不显示页眉
\setfoot{}{{\songti \wuhao 第~\thepage~页}}{}%
}

% 其他页面，使用当前章节标题名作为页眉，不带章节序号
\newpagestyle{emptypage}{
\sethead{}{}{}
% % 设置页脚
\setfoot{}{{\songti \wuhao 第~\thepage~页}}{}%
}


%</cls>
%    \end{macrocode}
%
%\subsection{编写格式}
%
% 当页面设置好之后，就是在论文的不同部分分别调用，一般来说论文类的书籍
% 分为三个matter，为前言区（前置部分），正文区（主体），后文区（附录），
% 在华南师范大学论文书写要求中，
% 需要将摘要单独进行页码编号，其编号为小写罗马字母，为此，
% 可以将摘要单独设定为一个matter，
% 名字就叫做MidMatter，称作摘要区。每个Matter我们都一一介绍。
%
% 首先看前置部分，主要包括封面，摘要，目录等，实现为：
%
%    \begin{macrocode}
%<*cls>
\renewcommand\frontmatter{%
    \clearpage 
    \@mainmatterfalse
    \pagenumbering{Roman}
    \pagestyle{plain}
}

%</cls>
%    \end{macrocode}
%
% 之后为文章的正文区，采用阿拉伯数字编页码：
%
%    \begin{macrocode}
%<*cls>
\renewcommand\mainmatter{%
    \if@openright\cleardoublepage\else\clearpage\fi
    \@mainmattertrue

    \pagenumbering{arabic}
    \normalsize % normal, 正文开始
    \def\@tabular{\wuhao[1.25]\old@tabular} % 之后表格字体使用5号

    \pagestyle{mpage}
  }
%</cls>
%    \end{macrocode}
%
% 最后是附录部分，由于他的章节标题与正文中不一样(不是第几章，而是附录几)，
% 我们需要单独设定：
% \changes{v0.5.7}{2013/04/28}{听取Brintton Chen的建议，修复了附录B开始页眉变为“第\ldots{}章”的问题}
%    \begin{macrocode}
%<*cls>
\renewcommand\backmatter{%
    \if@openright\cleardoublepage\else\clearpage\fi
    \titleformat{\chapter}{\filcenter \heiti \sanhao}{附录\,\thechapter\,}{1em}{}
    \titlecontents{chapter}[0pt]{\vspace{0.25\baselineskip} \heiti \xiaosi[1.25]}
      {附录\,\thecontentslabel\quad}{}
      {\hspace{.5em}\titlerule*{.}\contentspage}
      \@mainmattertrue
    \pagestyle{appendixpage}      
  }
%</cls>
%    \end{macrocode}
%
% 我们重新定义\verb|cleardoublepage|，使得生成完全的空白页，页面模式为\verb|empty|
%    \begin{macrocode}
%<*cls>
\renewcommand\cleardoublepage{\clearpage\if@openright \ifodd\c@page
  \else
  \newpage{}
  \thispagestyle{empty}
  \vspace*{\fill}
  \begin{center}
  \end{center}
  \vspace*{\fill}
  \clearpage\fi\fi%
}
%</cls>
%    \end{macrocode}
%%
%\subsubsection{摘要}
% \scnuthesis{}摘要的格式如下：\\
% \begin{description}
% \item[~中文摘要~]%
% \begin{itemize}%
%\item 论文题目为三号黑体字，可以分成1或2行居中打印。
%\item 论文题目下空一行居中依次打印专业名称、申请者姓名、导师姓名（小四号宋体）。之后空三行靠左打印“摘要”二字(小三号黑体)，两字间空一格（注：“一格”的标准为一个汉字，以下同）。
%\item“摘要”二字下空一行，打印摘要内容(小四号宋体)。段落按照“首行缩进”格式，每段开头空二格，标点符号占一格。
%\item 摘要内容后下空一行打印“关键词：”三字（四号黑体），其后为关键词（小四号
%   宋体）。关键词数量为3～8个。
% \end{itemize}
% \item[~英文摘要~]%
% \begin{itemize}%
%\item 论文英文题目全部采用大写字母（小三号黑体），可分成1～3行居中打印。每行左右两边至少留五个字符空格。
%\item 论文题目下空一行居中依次打印出Major，Name，Supervisor信息（小四号Times New Roman）。之后下空三行靠左打印“ABSTRACT”二字（四号黑体），再下空一行打印英文摘要内容，英文摘要与中文摘要相对应。
%\item 摘要内容每段开头留四个字符空格,字体为Times New Roman，小四号。
%\item 摘要内容后下空二行打印“KEY WORDS：”（小四号黑体）， 其后关键词小写。 
% \end{itemize}
% \end{description}
% \changes{v0.6}{2013/05/19}{修改摘要的格式}
% \changes{v0.6.1}{2013/05/20}{“摘要”和“关键词”首行不缩进}
% \changes{v0.6.4}{2014/04/08}{英文标题改用三号黑体}
% \changes{v0.6.5}{2014/04/11}{“摘要”两字后面不直接跟摘要内容，而是空一行}
% \changes{v0.6.5}{2014/04/11}{修改“专业名称”、“申请者”和“导师”信息的上下
% 间隔}
% \changes{v0.6.5}{2014/04/11}{英文的“ABSTRACT”和“KEY WORDS”改为用黑体}
% \changes{v0.6.5}{2014/04/11}{字号的调整}
% \changes{v0.6.6}{2014/04/19}{去掉盲审模式下的表格字段}
%    \begin{macrocode}
%<*cls>
\newcommand\cabstractname{摘\hspace{1em}要}
\newcommand\ckeywordsname{\hspace{-2em}{\heiti \xiaosi 关键词：}}
\newcommand\ckeywords[1]{{\xiaosi \songti \ckeywordsname #1}}

\newcommand\eabstractname{ABSTRACT}
\newcommand\ekeywordsname{\hspace{-2em}{\xiaosi \textsf{Keywords:}}}
\newcommand\ekeywords[1]{{\xiaosi \ekeywordsname~#1}}
\newenvironment{cabstract}{%
  \clearpage 
  \addcontentsline{toc}{chapter}{\cabstractname}%
  ~
  \begin{spacing}{2.0}
    \begin{center}{\hei \fontsize{18pt}{18pt} \cabstractname}\end{center}%
  \end{spacing}
  \xiaosi \vspace{1.4pt}%
  % \@afterheading
}
{\par\vspace{2em}\par}

\newenvironment{eabstract}{%
  \clearpage
  \addcontentsline{toc}{chapter}{\eabstractname}%
  ~
  \begin{spacing}{2.0}
    \begin{center}{\sanhao \textsf{\eabstractname}}\end{center}%
  \end{spacing}
  \xiaosi \vspace{1.4pt}

  % \@afterheading
}
{\par\vspace{2em}\par}
%</cls>
%    \end{macrocode}
%
%\subsubsection{目录}
% 前置部分的封面在后面详细介绍。首先看目录，要求为：
% 目次页由论文的章、节、条、项、附录等的序号、名称和页码组成，
% 另页排在序之后。目次页标注学位论文的前三级目录。
% 标题统一用“目录”，黑体3字号字居中，段前、段后间距为1行;
% 各章（一级目录）名称用黑体小4号字，段前间距为0.5行，
% 段后间距为0行; 其它（二、三级目录）用宋体小4号字，
% 段前、段后间距为0行。
%
% 在\LaTeX{}中，Chapter在目录中默认是没有点的,我们加上,另外我们一并将
% 目录中的section和subsection设定好,
%
%    \begin{macrocode}
%<*cls>
\titlecontents{chapter}[0pt]{\vspace{0.25\baselineskip} \heiti \xiaosi[1.25]}
    {第\CJKnumber{\thecontentslabel}章\quad}{}
    {\hspace{.5em}\titlerule*{.}\contentspage}
\titlecontents{section}[2em]{\songti \xiaosi[1.25]}
    {\thecontentslabel\quad}{}
    {\hspace{.5em}\titlerule*{.}\contentspage}
\titlecontents{subsection}[4em]{\songti \xiaosi[1.25]}
    {\thecontentslabel\quad}{}
    {\hspace{.5em}\titlerule*{.}\contentspage}
%</cls>
%    \end{macrocode}
%
% 然后是表目录和图目录，内容用宋体小4号字，在同学使用模板时，需要标题对齐，
% 我们一并在这里实现:
%
%    \begin{macrocode}
%<*cls>
\titlecontents{figure}[0pt]{\songti \xiaosi[1.25]}
    {\makebox[3.5em][l]{图~\thecontentslabel\quad}}{}
    {\hspace{.5em}\titlerule*{.}\contentspage}
\titlecontents{table}[0pt]{\songti \xiaosi[1.25]}
    {\makebox[3.5em][l]{表~\thecontentslabel\quad}}{}
    {\hspace{.5em}\titlerule*{.}\contentspage}
%</cls>
%    \end{macrocode}
%
% 书籍模板中，在LOF或者LOT章节之间会默认插入额外的距离，我们通过修改下面这个命令移除。
%
%    \begin{macrocode}
%<*cls>
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\scnu@chapter\@schapter}
\def\scnu@chapter[#1]#2{
  \ifnum \c@secnumdepth >\m@ne
    \if@openright\cleardoublepage\else\clearpage\fi
    \phantomsection
    \if@mainmatter
      \refstepcounter{chapter}%
      \addcontentsline{toc}{chapter}%
        {\protect\numberline{\thechapter}#1}%
    \else
      \addcontentsline{toc}{chapter}{#1}%
    \fi
  \else
    \addcontentsline{toc}{chapter}{#1}%
  \fi
  \chaptermark{#1}%
  \if@twocolumn
    \@topnewpage[\@makechapterhead{#2}]%
  \else
    \@makechapterhead{#2}%
    \@afterheading
  \fi
}
%</cls>
%    \end{macrocode}
%
%\subsection{主体部分}
%
% \subsubsection{标题格式}
% 要求为：
% \begin{itemize}
% \item	一级标题(章)用三号宋体字，加粗居中打印；
% \item	二级标题(节)以小三号宋体字加粗左起打印；
% \item	三级标题以四号宋体字加粗左起打印；
% \item	四级标题以小四号宋体字加粗打印。
% \end{itemize}
%
% 当章节标题出现的新的一页时，会出现段前距过小的情况，按照milksea的说法是：
% 一般而言，当一个内容在一页开头时，前面的\verb|\vskip|不起作用；
% 类似地，一行开头\verb|\hskip|不起作用。这不是 BUG，如果需要总起效果的间距，
% 用\verb|\vspace*|，文档里面有这样的例子。参照titlesec的文档，需加上:
%
%    \begin{macrocode}
%<*cls>
\newcommand{\sectionbreak}{%
\addpenalty{-300}%
\vspace*{0pt}%
}
\setlength{\topskip}{0pt}
%</cls>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*cls>
\setcounter{secnumdepth}{3}
\titleformat{\chapter}{\filcenter \songti \bfseries \sanhao[1.25]}{第\CJKnumber{\thechapter}章\,}{1em}{}
\titleformat{\section}{\songti \bfseries\xiaosan[1.25]}{\thesection}{1em}{}
\titleformat{\subsection}{\songti \bfseries\sihao[1.25]}{\thesubsection}{1em}{}
\titleformat{\subsubsection}{\songti \bfseries\xiaosi[1.25]}{\thesubsubsection}{1em}{}
\titlespacing{\chapter}{0pt}{2.4ex-\topskip-\heightof{A}}{2.4ex}
\titlespacing{\section}{0pt}{2ex-\heightof{a}}{2ex}
\titlespacing{\subsection}{0em}{2ex}{2ex}
\titlespacing{\subsubsection}{0em}{1ex}{0ex}
%</cls>
%    \end{macrocode}
%
%\subsubsection{正文字体}
% 首先确定正文中使用的字体，文档要求正文字体为小四，行距为1.5倍，
% 中文字体为宋体，英文为{Times New Roman}。
%
%\begin{macro}{\normalsize}
% 我们重新定义 |\normalsize| 来确定文档的正文字体，
% 同时修改正文中公式与文字间的距离：
%    \begin{macrocode}
%<*cls>
\renewcommand\normalsize{%
  \xiaosi%
  \renewcommand{\baselinestretch}{1.4}%
\setlength\abovedisplayskip{10bp \@plus 2bp \@minus 2bp}%
\setlength\abovedisplayshortskip{10bp \@plus 2bp \@minus 2bp}%
\setlength\belowdisplayskip{\abovedisplayskip}%
\setlength\belowdisplayshortskip{\abovedisplayshortskip}%
}
%</cls>
%    \end{macrocode}
%\end{macro}
%
%\subsubsection{正文段落}
% 接下来还有一个细节就是处理段落缩进，文档设定为首行缩进2个字符，
% 这一个命令需要在文档开始时自动执行：
%
% \changes{v0.5.3}{2011/02/23}{听取了Jiaxin Pan的建议，修改了段缩进}
%    \begin{macrocode}
%<*cls>
\setlength{\parindent}{2.5em}
%</cls>
%    \end{macrocode}
%
% 之后定义段落间距，段前间距以及段后间距都为0
%
%    \begin{macrocode}
%<*cls>
\setlength{\parskip}{0bp \@plus .5bp \@minus .5bp}
%</cls>
%    \end{macrocode}
%
% 有时候我们需要手动设定字体间距，可能就是在声明页使用过，下面定义字距调整命令：
%
%\begin{macro}{\ziju}
%    \begin{macrocode}
%<*cls>
\newcommand*{\ziju}[1]{\renewcommand{\CJKglue}{\hskip #1}}
%</cls>
%    \end{macrocode}
%\end{macro}
%
% 这一部分来自\thuthesis{}的代码，其出发点是不满意\LaTeX{}默认列表环境间距过大，用
% paralist包中的相关环境进行替代。请参考paralist宏包。
%
% 而同样有间距问题的是参考文献，两个条目之间过大的距离不是很美观，
% 最简单的办法是修改bibsep变量，如果还是不行，我们直接从thuthesis中拿来代码:
%
%    \begin{macrocode}
%<*cls>
\renewenvironment{thebibliography}[1]{%

  \thispagestyle{emptypage}
  \chapter*{\bibname}%

  \addcontentsline{toc}{chapter}{\bibname}

  \list{\@biblabel{\@arabic\c@enumiv}}%
  {\renewcommand{\makelabel}[1]{##1\hfill}
    \settowidth\labelwidth{1.1cm}
    \setlength{\labelsep}{0.4em}
    \setlength{\itemindent}{0pt}
    \setlength{\leftmargin}{\labelwidth+\labelsep}
    \addtolength{\itemsep}{-0.7em}
    \usecounter{enumiv}%
    \let\p@enumiv\@empty
    \renewcommand\theenumiv{\@arabic\c@enumiv}}%
  \sloppy\frenchspacing
  \clubpenalty4000%
  \@clubpenalty \clubpenalty
  \widowpenalty4000%
  \interlinepenalty4000%
  \sfcode`\.\@m
}
{\def\@noitemerr
  {\@latex@warning{Empty `thebibliography' environment}}%
  \endlist\frenchspacing}

%</cls>
%    \end{macrocode}
%
%\subsection{浮动对象}
%
% 浮动对象针对的目标是图片表格，标题为五号字体，
% 图片标题在下，表格标题在上，具体实现为:
%
%    \begin{macrocode}
%<*cls>
\setlength{\floatsep}{12bp \@plus 2bp \@minus 1bp}
\setlength{\intextsep}{12bp \@plus 2bp \@minus 1bp}
\setlength{\textfloatsep}{12bp \@plus 2bp \@minus 1bp}
\setlength{\@fptop}{0bp \@plus1.0fil}
\setlength{\@fpsep}{12bp \@plus2.0fil}
\setlength{\@fpbot}{0bp \@plus1.0fil}
%</cls>
%    \end{macrocode}
%
% 接下来设置每一页图形占据的比例，这个直接从\thuthesis{}中拿出，
% 具体含义可以参考下面这个网页：
% \url{http://www.ctex.org/documents/latex/graphics/node69.html}，
% 里面解释的很清楚，这个布置方法也是一个推荐的方法：
%
%    \begin{macrocode}
%<*cls>
\renewcommand{\textfraction}{0.15}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.65}
\renewcommand{\floatpagefraction}{0.80}
%</cls>
%    \end{macrocode}
%
% 在修改图片标题距离时，要注意，aboveskip为内距离，也就是标题与浮动体之间的距离，
% belowskip为外距离，也就是标题与正文之间的距离。
%
%    \begin{macrocode}
%<*cls>
\let\old@tabular\@tabular
\def\thu@tabular{\wuhao[1.25]\old@tabular}
\DeclareCaptionLabelFormat{thu}{{\wuhao[1.25]\song #1~\rmfamily #2}}
\DeclareCaptionLabelSeparator{thu}{\hspace{1em}}
\DeclareCaptionFont{thu}{\wuhao[1.25]}
\captionsetup{labelformat=thu,labelsep=thu,font=thu}
\captionsetup[table]{position=top,belowskip={12bp-\intextsep},aboveskip=6bp}
\captionsetup[figure]{position=bottom,belowskip={9bp-\intextsep},aboveskip=6bp}
\captionsetup[subfloat]
{labelformat=simple,font=thu,captionskip=6bp,nearskip=6bp,farskip=0bp,topadjust=0bp}
\renewcommand{\thesubfigure}{(\alph{subfigure})}
\renewcommand{\thesubtable}{(\alph{subtable})}
\let\thu@LT@array\LT@array
\def\LT@array{\thu@LT@array}
%</cls>
%    \end{macrocode}
%
%\subsection{自定环境}
%
% 在这里我们自定义一些论文种会使用到的环境，主要有摘要，符号表，致谢，个人介绍等：
% 这些单独定义的环境可以分别配置以满足要求。
%
% 有些论文需要在正文前面加入符号列表, 其内容格式是简单的列表环境:
%
%    \begin{macrocode}
%<*cls>
\newenvironment{denotation}[1][3cm]{
  \thispagestyle{emptypage}
  \chapter*{\denotationname} % no tocline
  \addcontentsline{toc}{chapter}{\denotationname}%
  \noindent\begin{list}{}%
    {\vskip-30bp\xiaosi[1.6]
      \renewcommand\makelabel[1]{##1\hfil}
      \setlength{\labelwidth}{#1} % 标签盒子宽度
      \setlength{\labelsep}{1cm} % 标签与列表文本距离
      \setlength{\itemindent}{0cm} % 标签缩进量
      \setlength{\leftmargin}{\labelwidth+\labelsep} % 左边界
      \setlength{\rightmargin}{0cm}
      \setlength{\parsep}{0cm} % 段落间距
      \setlength{\itemsep}{0cm} % 标签间距
      \setlength{\listparindent}{0cm} % 段落缩进量
      \setlength{\topsep}{0pt} % 标签与上文的间距
    }
  }{\end{list}}
%</cls>
%    \end{macrocode}
%
% 致谢往往在正文的最后：
%
%    \begin{macrocode}
%<*cls>
\newenvironment{ack}{%
  \thispagestyle{emptypage}
  \chapter*{\ackname}%
  \addcontentsline{toc}{chapter}{\ackname}%
  \ifisanon\color{white}\else\relax\fi%
  \xiaosi%
  \@mainmatterfalse
  \@afterheading
}
{\par\vspace{2em}\par}
%</cls>
%    \end{macrocode}
%
% 后记结束后，还需要介绍作者攻读学位期间发表的学术论文。可以
% 详细的参考\verb|data/|中的文件自己书写。
%
%    \begin{macrocode}
%<*cls>
\newenvironment{resume}{%
  \thispagestyle{emptypage}
  \chapter*{\resumename}
  \addcontentsline{toc}{chapter}{\resumename}
  \ifisanon\color{white}\else\relax\fi%
  \xiaosi
  \@mainmatterfalse
  \@afterheading
}
{\par\vspace{2em}\par}
%</cls>
%    \end{macrocode}
%
%\subsubsection{定理环境}
% 定理环境可能数学论文中应用较多:
%
%    \begin{macrocode}
%<*cls>
\renewtheoremstyle{nonumberplain}%
{\item[\hspace*{2em} \theorem@headerfont ##1\ \theorem@separator]}%
{\item[\hspace*{2em} \theorem@headerfont ##1\ (##3)\theorem@separator]}
\theoremstyle{nonumberplain}
\theorembodyfont{\rmfamily}
\theoremheaderfont{\sffamily}
\theoremsymbol{\ensuremath{\blacksquare}}
\theoremseparator{:\,}
\newtheorem{proof}{证明}[chapter]
\newtheorem{assumption}{假设}[chapter]
\newtheorem{definition}{定义}[chapter]

\renewtheoremstyle{plain}%
{\item[\hspace*{2em} \theorem@headerfont ##1\ ##2\theorem@separator]}%
{\item[\hspace*{2em} \theorem@headerfont ##1\ ##2\ (##3)\theorem@separator]}
\theoremstyle{plain}
\theorembodyfont{\kai}
\theoremheaderfont{\hei}
\theoremsymbol{}
\newtheorem{lemma}{引理}[chapter]
\newtheorem{theorem}{定理}[chapter]
\newtheorem{axiom}{公理}[chapter]
\newtheorem{corollary}{推论}[chapter]
\newtheorem{conjecture}{猜想}[chapter]
\newtheorem{proposition}{命题}[chapter]
\newtheorem{exercise}{练习}[section]
\newtheorem{example}{例}[section]
\newtheorem{problem}{问题}[section]
\newtheorem{remark}{注释}[section]
%</cls>
%    \end{macrocode}
%
% 由于split环境与xeCJK的稳定版本冲突，需要对split进行调校，
% 下面的代码直接来自amsmath中split的定义:
%
%    \begin{macrocode}
%<*cls>
\renewenvironment{split}{%
  \if@display%
    \ifinner%
      \@xp\@xp\@xp\split@aligned%
    \else%
      \ifst@rred \else \global\@eqnswtrue \fi%
    \fi%
  \fi%
  \collect@body\gather@split%
}{%
  \crcr%
  \egroup%
  \egroup%
  \iftagsleft@ \@xp\lendsplit@ \else \@xp\rendsplit@ \fi%
}
%</cls>
%    \end{macrocode}
%
%\subsection{论文属性}
% 这里的内容主要用来定义封面中的一些元素，你可以像填空一样完成封面的制作：
%
%    \begin{macrocode}
%<*cls>
\def\classification#1{\def\@classification{#1}} % 中图分类号
\def\serialno#1{\def\@serialno{#1}} % 学号
\def\udc#1{\def\@udc{#1}} % UDC号
\def\mastertype#1{\def\@mastertype{#1}} % 硕士学位类型
\def\confidentiality#1{\def\@confidentiality{#1}} % 密级
\def\title#1{\def\@title{#1}} % 中文题目
\def\displaytitle#1{\def\@displaytitle{#1}} % 文章标题
\def\entitle#1{\def\@entitle{#1}} % 英文标题
\def\author#1{\def\@author{#1}} % 中文作者名
\def\enauthor#1{\def\@enauthor{#1}} % 英文作者名
\def\zhdate#1{\def\@zhdate{#1}}	% 中文日期
\def\ZHCoverdate#1{\def\@ZHCoverdate{#1}}	% 非繁体大写中文日期
\def\ENCoverdate#1{\def\@ENCoverdate{#1}}	% MONTH, year
\def\subject#1{\def\@subject{#1}} % 中文学科
\def\ensubject#1{\def\@ensubject{#1}} % 英文学科
\def\researchfield#1{\def\@researchfield{#1}} % 中文研究方向
\def\enresearchfield#1{\def\@enresearchfield{#1}} % 英文研究方向
\def\supervisor#1{\def\@supervisor{#1}} % 导师
\def\ensupervisor#1{\def\@ensupervisor{#1}} % 导师英文名
\def\protitle#1{\def\@protitle{#1}} % 导师的职称
\def\school#1{\def\@school{#1}} % 学院
\def\enschool#1{\def\@enschool{#1}} % 学院英文名
\def\stutype#1{\def\@stutype{#1}} % 学生类型：大陆、港澳台、留学生

\def\optionpaperclass#1{\def\@optionpaperclass{#1}} % paperclass
\def\optionpaperclassen#1{\def\@optionpaperclassen{#1}} % paperclass english
\def\optionas#1{\def\@optionas{#1}} % Advisor OR Supervisor

\def\CommitteeMemberA#1#2#3#4{
  \def\@CommitteeTableRowA{#1 & #2 & #3 & #4}
} % 答辩委员会成员A
\def\CommitteeMemberB#1#2#3#4{
  \def\@CommitteeTableRowB{#1 & #2 & #3 & #4}
} % 答辩委员会成员B
\def\CommitteeMemberC#1#2#3#4{
  \def\@CommitteeTableRowC{#1 & #2 & #3 & #4}
} % 答辩委员会成员C
\def\CommitteeMemberD#1#2#3#4{
  \def\@CommitteeTableRowD{#1 & #2 & #3 & #4}
} % 答辩委员会成员D
\def\CommitteeMemberE#1#2#3#4{
  \def\@CommitteeTableRowE{#1 & #2 & #3 & #4}
} % 答辩委员会成员E
\def\CommitteeMemberF#1#2#3#4{
  \def\@CommitteeTableRowF{#1 & #2 & #3 & #4}
} % 答辩委员会成员F
\def\CommitteeMemberG#1#2#3#4{
  \def\@CommitteeTableRowG{#1 & #2 & #3 & #4}
} % 答辩委员会成员G
\def\CommitteeMemberH#1#2#3#4{
  \def\@CommitteeTableRowH{#1 & #2 & #3 & #4}
} % 答辩委员会成员H
%</cls>
%    \end{macrocode}
%
% 我们看用户是想用博士封面还是硕士封面:
%
%    \begin{macrocode}
%<*cls>
\ifismaster
  \optionpaperclass{硕士}
  \optionpaperclassen{Master}
  \optionas{Advisor}
\else
  \optionpaperclass{博士}
  \optionpaperclassen{Doctor}
  \optionas{Supervisor}
\fi
%</cls>
%    \end{macrocode}
%
% \subsection{制作封面}
%
% \changes{v0.5.4}{2011/05/11}{将华师的校名更换为一个更高清的版本，figures文
% 件夹里提供了学校校名以及校徽的矢量svg格式}
% \changes{v0.6.8}{2014/06/08}{修改封面。去除学校代码，添加UDC，添加学术/应用型
% 选项}
%
% 由于封面中一些元素是可选的，如果在正文中没有定义，那么判断ifx的时候就会出错，
% 我们加入下面的命令进行判断，如果没定义，我们就令他为空。
% 这个命令将在文档开始时自动执行。
%
%
% 制作封面比较复杂，需要一些手动调整的东西，首先来看第一页，
% 重新定义了\verb|makeCover|，
% 用表格来安排页面元素，页头采用仿宋五号字体，段前段后间距一行。
%    \begin{macrocode}
%<*cls>
\def\normalstustr{大陆}
\def\hktwstustr{港澳台}
\def\abroadstustr{留学生}
\def\makeCover{%
\clearpage{
\thispagestyle{empty}
  \renewcommand{\baselinestretch}{1.3}%
  \def\entry##1##2##3{%
    \multicolumn{##1}{l}{\uline{\hbox to ##2{\hfil##3\hfil}}}
    }
  \null
  \ifisanon%
  \author{}%
  \enauthor{}%
  \supervisor{}%
  \ensupervisor{}%
  \protitle{}%
  \else\relax\fi%
  \pagenumbering{alph}% not display, for print only
  
  \begin{tikzpicture}[remember picture, overlay]
    \node[anchor=north west, align=left] 
      at ([xshift=125pt, yshift=-72pt]current page.north west) {
        分类号：\@classification
      };
    \node[anchor=north west, align=left] 
      at ([xshift=360pt, yshift=-72pt]current page.north west) {
        密级：\@confidentiality
      };
      \node[anchor=north west, align=left] 
      at ([xshift=125pt, yshift=-94pt]current page.north west) {
        UDC：\@udc
      };
    \node[anchor=north west, align=left] 
      at ([xshift=360pt, yshift=-94pt]current page.north west) {
        学号：\@serialno
      };
    \node[anchor=north, align=center, text width=\dimexpr\textwidth-0pt\relax]
      at ([xshift=-11pt,yshift=-156pt]current page.north) {
        \includegraphics[width=264pt]{title.png}
      };
    \node[anchor=north, align=center, text width=\dimexpr\textwidth-0pt\relax]
      at ([yshift=-232pt]current page.north) {
        \fontsize{16pt}{16pt}\selectfont\bfseries\itshape
        South China Normal University
      };
    \node[anchor=north]
      at ([yshift=-278pt]current page.north) {
        \songti\fontsize{36pt}{36pt}\selectfont\bfseries
        \ifismaster{硕士}\else{博士}\fi 学位论文
      }; 
    \node[anchor=north, align=left]
      at ([yshift=-321pt]current page.north) {
        \songti\fontsize{18pt}{18pt}\selectfont\bfseries
        （\@mastertype 学位
        \ifx\@stutype\hktwstustr
          \hspace*{9pt}港澳台生
        \fi
        \ifx\@stutype\abroadstustr
          \hspace*{9pt}留学生
        \fi
        ）
      }; 
    \node[anchor=north west, align=center, text width=\dimexpr\textwidth-0pt\relax]
      at ([xshift=82pt, yshift=-370pt]current page.north west) {

          \begin{spacing}{1.4}
          \heiti\fontsize{22pt}{30pt}\selectfont\centering
          \@title
          \end{spacing}
        
      }; 
      \node[anchor=north west]
      at ([xshift=82pt, yshift=-419pt]current page.north west) {

          \rule{430pt}{1pt}
        
      }; 
      \node[anchor=north west]
      at ([xshift=82pt, yshift=-462pt]current page.north west) {

          \rule{430pt}{1pt}
        
      };
    \node[anchor=north, ]
      at ([yshift=-527pt]current page.north) {
        \songti\fontsize{14pt}{14pt}\selectfont
        \begin{tabular}{
          >{\rule{0pt}{31pt}}p{127pt}
          >{\centering\arraybackslash\rule{0pt}{31pt}}m{192pt}
        }
        \makebox[125pt][s]{\fontsize{16pt}{16pt}\bfseries 学位申请人：} & \entry{1}{190pt}{\@author} \\
        \makebox[125pt][s]{\fontsize{16pt}{16pt}\bfseries 专业名称：} & \entry{1}{190pt}{\@subject} \\ 
        \makebox[125pt][s]{\fontsize{16pt}{16pt}\bfseries 研究方向：} & \entry{1}{190pt}{\@researchfield} \\ 
        \makebox[125pt][s]{\fontsize{16pt}{16pt}\bfseries 所在院系：} & \entry{1}{190pt}{\@school} \\ 
        \makebox[125pt][s]{\fontsize{16pt}{16pt}\bfseries 导师姓名及职称：} & \entry{1}{190pt}{\@supervisor \hspace*{14pt} \@protitle} \\ 
        \end{tabular}
      }; 
    \node[anchor=north, align=left]
      at ([yshift=-758pt]current page.north) {
        \songti\fontsize{14pt}{14pt}\selectfont
        \@ZHCoverdate
      }; 
  \end{tikzpicture}
  \cleardoublepage}
}
\def\makeEnCover{
  \clearpage{
  \thispagestyle{empty}
  \renewcommand{\baselinestretch}{1.3}%
  \def\entry##1##2##3{%
    \multicolumn{##1}{l}{\uline{\hbox to ##2{\hfil##3\hfil}}}
    }
  \null
  \ifisanon%
  \author{}%
  \enauthor{}%
  \supervisor{}%
  \ensupervisor{}%
  \protitle{}%
  \else\relax\fi%
  \begin{tikzpicture}[remember picture, overlay]
    \node[anchor=north] 
      at ([yshift=-131pt]current page.north) {
        \fontsize{22pt}{22pt}\selectfont\bfseries
        South China Normal University
      };
    \node[anchor=north] 
      at ([yshift=-200pt]current page.north) {
        \fontsize{18pt}{18pt}\selectfont\bfseries
        A \ifismaster{Thesis }\else{Dissertation }\fi Submitted for the Degree of \ifismaster{Master}\else{Doctor}\fi
      };
    \node[anchor=north west, align=center, text width=\dimexpr\textwidth-0pt\relax]
      at ([xshift=82pt, yshift=-283pt]current page.north west) {

        \begin{spacing}{1.4}
          \fontsize{22pt}{31pt}\selectfont\centering\bfseries
            \@entitle
        \end{spacing}
        
      }; 
    \node[anchor=north west]
      at ([xshift=82pt, yshift=-333pt]current page.north west) {

          \rule{430pt}{1pt}
        
      }; 
    \node[anchor=north west]
      at ([xshift=82pt, yshift=-377pt]current page.north west) {

          \rule{430pt}{1pt}
        
      };
    \node[anchor=north, ]
      at ([yshift=-420pt]current page.north) {
        \fontsize{14pt}{14pt}\selectfont
        \begin{tabular}{
          >{\rule{0pt}{31pt}}p{150pt}
          >{\centering\arraybackslash\rule{0pt}{31pt}}m{212pt}
        }
        {\fontsize{16pt}{16pt}\bfseries Supervisor:} & \entry{1}{200pt}{\@ensupervisor} \\
        {\fontsize{16pt}{16pt}\bfseries Candidate:} & \entry{1}{200pt}{\@enauthor} \\ 
        {\fontsize{16pt}{16pt}\bfseries Major:} & \entry{1}{200pt}{\@ensubject} \\ 
        {\fontsize{16pt}{16pt}\bfseries Research direction:} & \entry{1}{200pt}{\@enresearchfield} \\ 
        {\fontsize{16pt}{16pt}\bfseries Department:} & \entry{1}{200pt}{\@enschool} \\ 
        \end{tabular}
      };  
    \node[anchor=north] 
      at ([yshift=-655pt]current page.north) {
        \fontsize{16pt}{16pt}\selectfont\bfseries
        \@ENCoverdate
      };
  \end{tikzpicture}
  \cleardoublepage}
}

%</cls>
%    \end{macrocode}
%
% 定义答辩合格证明宏 
%    \begin{macrocode}
%<*cls>
% \expandafter\newcommand\csname tabledata\endcsname{}
% \@for\member:=\@CommitteeMember\do{
%     \expandafter\g@addto@macro\csname tabledata\endcsname{1&2&3&4 \\ \hline}
% }
\def\makecert{%
  \clearpage{
  \thispagestyle{empty}
  \begin{tikzpicture}[remember picture, overlay]
    % Draw the rectangle with specified margins and border
    \draw[line width=0.5pt]
        ([xshift=5.53em, yshift=-5.12em]current page.north west)
        rectangle
        ([xshift=-5.53em, yshift=5.12em]current page.south east);
    % Add text inside the rectangle
    \node[anchor=north, align=center, text width=\dimexpr\textwidth-9.24em\relax]
        at ([yshift=-5.12em-49.5pt]current page.north) {
        \CJKfamily{song}\fontsize{16pt}{16pt}\selectfont\bfseries
        华南师范大学研究生学位论文答辩合格证明
    };
    % Add the paragraph text inside the rectangle
    \node[anchor=north west, align=left, text width=\dimexpr\textwidth-0pt\relax]
        at ([xshift=5.53em+16pt, yshift=-5.12em-49.5pt-38.5pt-16pt]current page.north west) {
        \CJKfamily{song}\fontsize{16pt}{16pt}\selectfont
        \hspace*{32pt}学位申请人\underline{\@author}向本学位论文答辩委员会提交题为\underline{\@title}的
        \ifismaster{硕士}\else{博士}\fi
        论文，经答辩委员会审议，本论文答辩合格，特此证明。
    };
    % Add committee members title
    \node[anchor=north, align=center, text width=\dimexpr\textwidth-0pt\relax]
        at ([yshift=-5.12em-49.5pt-38.5pt-32pt-93.5pt]current page.north) {
        \CJKfamily{hei}\fontsize{16pt}{16pt}\selectfont\bfseries
        \@author \ifismaster{硕士}\else{博士}\fi 学位论文答辩委员会成员名单
    };
    % Add the table
    \node[anchor=north, align=center, text width=\dimexpr\textwidth-0pt\relax]
        at ([yshift=-5.12em-49.5pt-38.5pt-32pt-93.5pt-48pt]current page.north) {
        \begin{tikzpicture}
          \node[inner sep=0pt] (table) {
            \CJKfamily{song}\fontsize{12pt}{12pt}\selectfont\centering
            \begin{tabular}{
              |>{\centering\arraybackslash\rule{0pt}{22pt}}m{65pt}|
              >{\centering\arraybackslash\rule{0pt}{22pt}}m{65pt}|
              >{\centering\arraybackslash\rule{0pt}{22pt}}m{110pt}|
              >{\centering\arraybackslash\rule{0pt}{22pt}}m{65pt}|
            } 

              \hline
                {\rule{0pt}{22pt}姓名} &
                {\rule{0pt}{22pt}职称} &
                {\rule{0pt}{22pt}单位} &
                {\rule{0pt}{22pt}备注} \\
              \hline
              \@CommitteeTableRowA \\ \hline
              \@CommitteeTableRowB \\ \hline 
              \@CommitteeTableRowC \\ \hline 
              \@CommitteeTableRowD \\ \hline 
              \@CommitteeTableRowE \\ \hline 
              \@CommitteeTableRowF \\ \hline 
              \@CommitteeTableRowG \\ \hline 
              \@CommitteeTableRowH \\ \hline 
            \end{tabular}
          };
        \end{tikzpicture}
    };
    \node[anchor=north west, align=left, text width=\dimexpr\textwidth-0pt\relax]
        at ([xshift=5.53em+48pt, yshift=-5.12em-49.5pt-38.5pt-32pt-93.5pt-340pt]current page.north west) {
        \CJKfamily{song}\fontsize{15pt}{15pt}\selectfont
        论文指导老师：\underline{\@supervisor}
    };
    \node[anchor=north east, align=right]
        at ([xshift=-5.53em, yshift=-5.12em-49.5pt-38.5pt-32pt-93.5pt-340pt-64pt]current page.north east) {
        \CJKfamily{song}\fontsize{14pt}{14pt}\selectfont
        华南师范大学 \CJKfamily{song}\fontsize{16pt}{16pt}\selectfont\hspace*{2pt}\@school（公章）
    };
    \node[anchor=north east, align=right]
        at ([xshift=-5.53em-48pt, yshift=-5.12em-49.5pt-38.5pt-32pt-93.5pt-340pt-64pt-15pt-15pt]current page.north east) {
        \CJKfamily{song}\fontsize{15pt}{15pt}\selectfont
        \@zhdate
    };
  \end{tikzpicture}
  \cleardoublepage}
}
\def\MemberToTable#1{
  \def\temp##1,##2,##3,##4{##1 & ##2 & ##3 & ##4 \\ \hline}
  \temp#1
}
%</cls>
%    \end{macrocode}
%
% \Finale
%
\endinput